As the Internet gains popularity and its bandwidth is more heavily utilized, there will be a need to utilize the network resources more efficiently. Multicasting is the fundamental technology which allows such an efficient utilization of the network for applications that need to send the same information to several different destinations. There are multicast applications, such as video conferencing, which involve real-time traffic, and such applications require a strict guarantee on end-to-end latency, but do not require complete reliability.
On the other hand, there is a second type of application, such as software distribution, which does not have any strict limit on end-to-end latency, but complete reliability is a must. The U.S. Pat. No. 5,541,927 entitled "A method of multicasting" by Kristol, Paul and Sabnani, issued on Jul 30, 1996 addresses the applications of the second type, using a single file (bulk data) transport, where complete reliability is the goal and end-to-end latency is not a concern.
In between these two extremes, is a third type of application (e.g., one which uses a continuous byte stream), such as market data distribution. This third type of application has some requirements in terms of end-to-end delay, albeit less stringent than video-conferencing, for example, and at the same time, has high reliability requirements, although complete reliability may be compromised if the end-to-end delay requirements are not satisfied.
What is needed is a protocol which can be used for this third type of application and also for the second type of application, with a continuous byte stream as opposed to a single file, for transmission from a sender to multiple receivers.